package com.ksd.modules.download.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ksd.common.po.BatchIdsPO;
import com.ksd.commons.IBaseService;
import com.ksd.modules.download.entity.AdminDownloadsUserBuy;
import com.ksd.modules.download.po.AdminDownloadsUserBuySavePO;
import com.ksd.modules.download.po.AdminDownloadsUserBuySearchPO;
import com.ksd.modules.download.vo.AdminDownloadsUserBuyVo;

public interface IAdminDownloadsUserBuyService extends IBaseService<AdminDownloadsUserBuy> {


    /**
     * 查询列表
     *
     * @param adminDownloadsUserBuySearchPO
     * @return
     */
    Page<AdminDownloadsUserBuyVo> findAdminDownloadsUserBuys(AdminDownloadsUserBuySearchPO adminDownloadsUserBuySearchPO);

    /**
     * 保存和更新
     *
     * @param adminDownloadsUserBuySavePO
     * @return
     */
    AdminDownloadsUserBuyVo saveUpdateAdminDownloadsUserBuy(AdminDownloadsUserBuySavePO adminDownloadsUserBuySavePO);

    /**
     * 根据ID获取明细
     *
     * @param id
     * @return
     */
    AdminDownloadsUserBuyVo getAdminDownloadsUserBuyById(Long id);


    /**
     * 单个物理删除
     *
     * @return
     */
    Boolean removeAdminDownloadsUserBuyById(Long id);

    /**
     * 批量物理删除
     *
     * @param batchIdsPO
     * @return
     */
    Boolean batchRemovesAdminDownloadsUserBuy(BatchIdsPO batchIdsPO);


    /**
     * 修改状态
     *
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatus(Long id, String column, Integer value);

    /**
     * 修改状态
     *
     * @param id
     * @param column
     * @param value
     * @return
     */
    boolean updateStatusStr(Long id, String column, String value);

    /*
     *  * 用户绑定下载订单
     * @param uuid
     * @param opid
     * @return
     */
    boolean bindUserOrder(String uuid, Long opid);
}
